home *** CD-ROM | disk | FTP | other *** search
- # MkChoose.tcl --
- #
- # This file implements the "Choosers" page in the widget demo
- #
- # This file has not been properly documented. It is NOT intended
- # to be used as an introductory demo program about Tix
- # programming. For such demos, please see the files in the
- # demos/samples directory or go to the "Samples" page in the
- # "widget demo"
- #
- #
- # Copyright (c) 1996, Expert Interface Technologies
- #
- # See the file "license.terms" for information on usage and redistribution
- # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- #
-
-
-
- proc MkChoosers {nb page} {
- set w [$nb subwidget $page]
-
- set name [tixOptionName $w]
- option add *$name*TixLabelFrame*label.padX 4
-
- tixLabelFrame $w.til -label "Chooser Widgets"
- tixLabelFrame $w.cbx -label "tixComboBox"
- tixLabelFrame $w.ctl -label "tixControl"
- tixLabelFrame $w.sel -label "tixSelect"
- tixLabelFrame $w.opt -label "tixOptionMenu"
- tixLabelFrame $w.fil -label "tixFileEntry"
- tixLabelFrame $w.fbx -label "tixFileSelectBox"
- tixLabelFrame $w.tbr -label "Tool Bar"
-
- MkTitle [$w.til subwidget frame]
- MkCombo [$w.cbx subwidget frame]
- MkControl [$w.ctl subwidget frame]
- MkSelect [$w.sel subwidget frame]
- MkOptMenu [$w.opt subwidget frame]
- MkFileBox [$w.fbx subwidget frame]
- MkFileEnt [$w.fil subwidget frame]
- MkToolBar [$w.tbr subwidget frame]
-
- #
- # First column: comBox and selector
- tixForm $w.cbx -top 0 -left 0 -right %33
- tixForm $w.sel -left 0 -right &$w.cbx -top $w.cbx
- tixForm $w.opt -left 0 -right &$w.cbx -top $w.sel -bottom -1
-
- #
- # Second column: title .. etc
- tixForm $w.til -left $w.cbx -right %66 -top 0
- tixForm $w.ctl -left $w.cbx -right &$w.til -top $w.til
- tixForm $w.fil -left $w.cbx -right &$w.til -top $w.ctl
- tixForm $w.tbr -left $w.cbx -right &$w.til -top $w.fil -bottom -1
-
- #
- # Third column: file selection
- tixForm $w.fbx -left %66 -right -1 -top 0
- }
-
- #----------------------------------------------------------------------
- # ComboBox
- #----------------------------------------------------------------------
- proc MkCombo {w} {
- set name [tixOptionName $w]
- option add *$name*TixComboBox*label.width 10
- option add *$name*TixComboBox*label.anchor e
- option add *$name*TixComboBox*entry.width 14
-
- tixComboBox $w.static -label "Static" \
- -editable false
- tixComboBox $w.editable -label "Editable" \
- -editable true
- tixComboBox $w.history -label "History" \
- -editable true -history true -anchor e
-
- $w.static insert end January
- $w.static insert end February
- $w.static insert end March
- $w.static insert end April
- $w.static insert end May
- $w.static insert end June
- $w.static insert end July
- $w.static insert end August
- $w.static insert end September
- $w.static insert end October
- $w.static insert end November
- $w.static insert end December
-
- $w.editable insert end "America"
- $w.editable insert end "Britain"
- $w.editable insert end "China"
- $w.editable insert end "Denmark"
- $w.editable insert end "Egypt"
-
- $w.history insert end "/usr/bin/mail"
- $w.history insert end "/etc/profile"
- $w.history insert end "/home/d/doe/Mail/letter"
-
- pack $w.static $w.editable $w.history -side top -padx 5 -pady 3
- }
-
- #----------------------------------------------------------------------
- # The Control widgets
- #----------------------------------------------------------------------
- set states {Alabama "New York" Pennsylvania Washington}
-
- proc stCmd {w by value} {
- global states
-
- set index [lsearch $states $value]
- set len [llength $states]
- set index [expr $index + $by]
-
- if {$index < 0} {
- set index [expr $len -1]
- }
- if {$index >= $len} {
- set index 0
- }
-
- return [lindex $states $index]
- }
-
- proc stValidate {w value} {
- global states
-
- if {[lsearch $states $value] == -1} {
- return [lindex $states 0]
- } else {
- return $value
- }
- }
-
- proc MkControl {w} {
- set name [tixOptionName $w]
- option add *$name*TixControl*label.width 10
- option add *$name*TixControl*label.anchor e
- option add *$name*TixControl*entry.width 13
-
-
- tixControl $w.simple -label Numbers
-
- tixControl $w.spintext -label States \
- -incrcmd "stCmd $w.spintext 1" \
- -decrcmd "stCmd $w.spintext -1" \
- -validatecmd "stValidate .d" \
- -value "Alabama"
-
- pack $w.simple $w.spintext -side top -padx 5 -pady 3
- }
-
- #----------------------------------------------------------------------
- # The Select Widgets
- #----------------------------------------------------------------------
- proc MkSelect {w} {
- set name [tixOptionName $w]
- option add *$name*TixSelect*label.anchor c
- option add *$name*TixSelect*orientation vertical
- option add *$name*TixSelect*labelSide top
-
- tixSelect $w.sel1 -label "Mere Mortals" -allowzero true -radio true
- tixSelect $w.sel2 -label "Geeks" -allowzero true -radio false
-
- $w.sel1 add eat -text Eat
- $w.sel1 add work -text Work
- $w.sel1 add play -text Play
- $w.sel1 add party -text Party
- $w.sel1 add sleep -text Sleep
-
- $w.sel2 add eat -text Eat
- $w.sel2 add prog1 -text Program
- $w.sel2 add prog2 -text Program
- $w.sel2 add prog3 -text Program
- $w.sel2 add sleep -text Sleep
-
- pack $w.sel1 $w.sel2 -side left -padx 5 -pady 3 -fill x
- }
- #----------------------------------------------------------------------
- # The OptMenu Widget
- #----------------------------------------------------------------------
- proc MkOptMenu {w} {
- set name [tixOptionName $w]
-
- option add *$name*TixOptionMenu*label.anchor e
-
- tixOptionMenu $w.menu -label "File Format : " \
- -options {
- menubutton.width 15
- }
-
- $w.menu add command text -label "Plain Text"
- $w.menu add command post -label "PostScript"
- $w.menu add command format -label "Formatted Text"
- $w.menu add command html -label "HTML"
- $w.menu add separator sep
- $w.menu add command tex -label "LaTeX"
- $w.menu add command rtf -label "Rich Text Format"
-
- pack $w.menu -padx 5 -pady 3 -fill x
- }
-
- #----------------------------------------------------------------------
- # FileEntry
- #----------------------------------------------------------------------
- proc MkFileEnt {w} {
- set name [tixOptionName $w]
-
- message $w.msg -font -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*\
- -relief flat -width 240 -anchor n\
- -text {Press the "open file" icon button and a\
- TixFileSelectDialog will popup.}
-
- tixFileEntry $w.ent -label "Select a file : "
-
- pack $w.msg -side top -expand yes -fill both -padx 3 -pady 3
- pack $w.ent -side top -fill x -padx 3 -pady 3
- }
-
- proc MkFileBox {w} {
- set name [tixOptionName $w]
-
- message $w.msg -font -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*\
- -relief flat -width 240 -anchor n\
- -text {The TixFileSelectBox is Motif-style file selection\
- box with various enhancements. For example, you can adjust the\
- size of the two listboxes and your past selections are recorded.}
-
- tixFileSelectBox $w.box
-
- pack $w.msg -side top -expand yes -fill both -padx 3 -pady 3
- pack $w.box -side top -fill x -padx 3 -pady 3
- }
-
- #----------------------------------------------------------------------
- # Tool Bar
- #----------------------------------------------------------------------
- proc MkToolBar {w} {
- set name [tixOptionName $w]
-
- option add $name*TixSelect*frame.borderWidth 1
- message $w.msg -font -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*\
- -relief flat -width 240 -anchor n\
- -text {The Select widget is also good for arranging buttons\
- in a tool bar.}
-
- frame $w.bar -bd 2 -relief raised
- tixSelect $w.font -allowzero true -radio false -label {}
- tixSelect $w.para -allowzero false -radio true -label {}
-
- $w.font add bold -bitmap [tix getbitmap bold]
- $w.font add italic -bitmap [tix getbitmap italic]
- $w.font add underline -bitmap [tix getbitmap underlin]
- $w.font add capital -bitmap [tix getbitmap capital]
-
- $w.para add left -bitmap [tix getbitmap leftj]
- $w.para add right -bitmap [tix getbitmap rightj]
- $w.para add center -bitmap [tix getbitmap centerj]
- $w.para add justify -bitmap [tix getbitmap justify]
-
- pack $w.msg -side top -expand yes -fill both -padx 3 -pady 3
- pack $w.bar -side top -fill x -padx 3 -pady 3
- pack $w.para $w.font -in $w.bar -side left -padx 4 -pady 3
- }
- #----------------------------------------------------------------------
- # Title
- #----------------------------------------------------------------------
- proc MkTitle {w} {
- set name [tixOptionName $w]
-
- option add $name*TixSelect*frame.borderWidth 1
- message $w.msg -font -*-helvetica-bold-r-normal-*-14-*-*-*-*-*-*-*\
- -relief flat -width 240 -anchor n\
- -text {There are many types of "choose" widgets that allow\
- the user to input different type of information.}
-
- pack $w.msg -side top -expand yes -fill both -padx 3 -pady 3
- }
-